// 用户先登录，登录成功之后拿到token，然后再保存token到本地
import 'dart:io';

void main() {
  print('开始执行main函数');
  getToken();
  print('这是不能被阻塞的代码');
}

getToken() async {
  String token = await login();
  print('登录结果为$token');
  String result = await setToken(token);
  print('保存结果为$result');
}

// 1. 模拟耗时的登录操作
Future<String> login() {
  return Future(() {
    print('开始登录~~~');
    sleep(Duration(seconds: 3));
    print('假装登录成功~~~');
    String token = 'Login-token';
    return token;
  });
}

// 2. 模拟耗时的本地存储操作
Future<String> setToken(String token) {
  return Future(() {
    print('开始保存 token~~~');
    sleep(Duration(seconds: 3));
    print('token 保存成功~~~');
    return 'ok';
  });
}
